Digital media may be compressed in order to reduce the quantity of data used to represent the media. Various techniques exist for performing such data compression by encoding the media into a smaller form. Accordingly, during playback, such compressed media is typically decoded before it is presented. As such, playback may be affected by the type of compression utilized, as well as the system resources available for decoding the media.
A common approach for encoding media includes defining frames relative to other frames. As an example, these frames may be defined as a difference (e.g., a delta) with respect to another frame or frames. This is because frames may change relatively little from one frame to a next, and thus, representing the frames based on the changes may utilize less data than representing the entire frame. However, such relative encoding of frames may complicate playback of the media, as this serial dependency must be taken into account when decoding the media. In particular, playback of such media within a trick mode such as fast-forwarding or rewinding may be particularly challenging since these trick modes typically require playback at an increased speed, and accordingly, may utilize more system resources to support the quicker decoding and display of the media. Moreover, international standards, such as H.264, VC-1, MPEG-2, MPEG-4 Part II, and MPEG-1, only define the decoding processing of normal playback, but not the decoding of any trick playback, which is left up to application designs.
Another existing approach is to decode all frames in a forward order, then playback the decoded frames in a reverse order. However, such an approach taxes conventional system resources, and thus reverse playback may be too slow to suit the user.